// OpretGruppeForm.cpp : implementation file
//

#include "stdafx.h"
#include "EBASApp.h"
#include "OpretGruppeForm.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// COpretGruppeForm

IMPLEMENT_DYNCREATE(COpretGruppeForm, CFormView)

COpretGruppeForm::COpretGruppeForm()
	: CFormView(COpretGruppeForm::IDD)
{
	//{{AFX_DATA_INIT(COpretGruppeForm)
	m_bemaerkning = _T("");
	m_navn = _T("");
	m_sted = _T("");
	m_slutTid = 0;
	m_startTid = 0;
	//}}AFX_DATA_INIT
}

COpretGruppeForm::~COpretGruppeForm()
{
}

void COpretGruppeForm::DoDataExchange(CDataExchange* pDX)
{
	CFormView::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(COpretGruppeForm)
	DDX_Control(pDX, IDC_COMBO_OPRETGRUPPE_EJERFORHOLD, m_ejerforhold);
	DDX_Text(pDX, IDC_EDIT_OPRETGRUPPE_BEMAERKNING, m_bemaerkning);
	DDX_Text(pDX, IDC_EDIT_OPRETGRUPPE_NAVN, m_navn);
	DDX_Text(pDX, IDC_EDIT_OPRETGRUPPE_STED, m_sted);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_OPRETGRP_SLUTTID, m_slutTid);
	DDX_DateTimeCtrl(pDX, IDC_DATETIMEPICKER_OPRETGRP_STARTTID, m_startTid);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(COpretGruppeForm, CFormView)
	//{{AFX_MSG_MAP(COpretGruppeForm)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// COpretGruppeForm diagnostics

#ifdef _DEBUG
void COpretGruppeForm::AssertValid() const
{
	CFormView::AssertValid();
}

void COpretGruppeForm::Dump(CDumpContext& dc) const
{
	CFormView::Dump(dc);
}
#endif //_DEBUG

/////////////////////////////////////////////////////////////////////////////
// COpretGruppeForm message handlers

void COpretGruppeForm::OnButtonOpretgruppeGem() 
{
	UpdateData();

	try {

		EBASDLLLib::IGruppe * pGruppe = NULL;
		CEBASAppApp::gpEbasSession->OpretGruppe(&pGruppe);
		pGruppe->Navn = bstr_t(m_navn);
		pGruppe->Sted = bstr_t(m_sted);
		pGruppe->Bemaerkning = bstr_t(m_bemaerkning);
		
		CString holder;
		holder = m_startTid.Format("%Y-%m-%d");
		pGruppe->StartTid = bstr_t(holder);
		holder = m_slutTid.Format("%Y-%m-%d");
		pGruppe->SlutTid = bstr_t(holder);

		int sel = m_ejerforhold.GetCurSel();
		if (-1 < sel)
			m_ejerforhold.GetLBText(sel, holder);
/*
		EBASDLLLib::IEjerforholdPtr pEjerforhold = NULL;
		EBASDLLLib::IEnumEjerforholdPtr pEnumEjerforhold;
		pEnumEjerforhold.CreateInstance(__uuidof(EBASDLLLib::EnumEjerforhold));
		pEjerforhold = pEnumEjerforhold->findEjerforhold(bstr_t(holder));		
		if (NULL != pEjerforhold) {
			BSTR ejerforhold;		
			pEjerforhold->get_GUID(&ejerforhold);
			holder = ejerforhold;
		}
*/
		pGruppe->Ejerforhold = bstr_t(holder);
		pGruppe->SetInfo();
	} catch (...) {
		MessageBox(CEBASAppApp::gpEbas->LastError);
	}

}

void COpretGruppeForm::OnInitialUpdate() 
{
	CFormView::OnInitialUpdate();

	try {
		bstr_t navn;
		IUnknown * pUnk = NULL; ULONG fetched = 0;		
		EBASDLLLib::IEnumEjerforholdPtr pEnumEjerforhold;
		pEnumEjerforhold.CreateInstance(__uuidof(EBASDLLLib::EnumEjerforhold));
		pEnumEjerforhold->Next(&pUnk, &fetched);
		while (NULL != pUnk) {
			EBASDLLLib::IEjerforholdPtr pEjerforhold = NULL;
			pUnk->QueryInterface(__uuidof(EBASDLLLib::IEjerforhold), (void**)&pEjerforhold);
			pUnk = NULL;

			EBASDLLLib::IAdressePtr pAdresse = NULL;
			pAdresse = pEjerforhold->Adresse;
			navn = pAdresse->Attention;
			m_ejerforhold.AddString(navn);

			pAdresse = NULL;
			pEjerforhold = NULL;

			pEnumEjerforhold->Next(&pUnk, &fetched);
		}
	} catch (...) {

	}

	m_startTid = m_startTid.GetCurrentTime();
	m_slutTid = m_slutTid.GetCurrentTime();

	UpdateData(FALSE);
}
